#pragma once


class SunMoonEphemeris
{
public:
    /*
    * @brief [MS_aLon] 月日视黄经的差值;
    *
    * @param T
    *        儒略千年数;
    *
    * @param moonCount
     *        月球 参与计算数量 默认：-1 全部参与计算;
    *
    * @param sunCount
     *        太阳 参与计算数量 默认：-1 全部参与计算;
    *
    * @return 差值;
    */
    static double ApparentEclipticLongitudeDiff(double T, int moonCount = -1, int sunCount = -1) noexcept;

    /**
     * @brief [MS_aLon_t] 已知太阳视黄经反求时间;
     *
     * @param W
     *        月日视黄经差;
     * @return double
     */
    static double GetEclipticLongitudeTime(double W) noexcept;

    /**
     * @brief [MS_aLon_t2] 已知太阳视黄经反求时间,高速低精度,误差不超过600秒(只验算了几千年);
     *
     * @param W
     *        月日视黄经差;
     * @return double
     */
    static double GetEclipticLongitudeTimeLow(double W) noexcept;
};